﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace DeckOfCards.Domain
{
    [XmlRoot("Mazzo")]
    class DefinizioneMazzo
    {
        [XmlElement("Semi")]
        List<DefinizioneSeme> DefinizioniSemi = new List<DefinizioneSeme>();

        //non esponiamo la lista direttamente perché violarebbe la regola di Sepearation Of Concerns.
        internal void AddSeme(DefinizioneSeme DefinizioneDaAggiungere)
        {
            DefinizioniSemi.Add(DefinizioneDaAggiungere);
        }

        public IList<DefinizioneSeme> GetSemi() { return DefinizioniSemi; }

        public int ConteggioCarte()
        {
            int total = 0;
            foreach (DefinizioneSeme s in DefinizioniSemi)
            {
                foreach (Carta.ValoreDiFacciataEnum valore in s.Valori)
                {
                    total += 1;
                }
            }
            return total;
        }
    }
}
